<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:pe="http://primefaces.org/ui/extensions">

    <h:body>
        <ui:composition template="/resources/template/template.xhtml">
            <ui:define name="content">
                <h:form>
                    <p:panel header="Search User Bills" >
                        <h:panelGroup>

                            <h:inputText autocomplete="off" id="txtSearch" value="#{billSearch.txtSearch}" >
                                <f:ajax render="tblBills" execute="txtSearch" event="keyup" />
                            </h:inputText>

                            <p:watermark value="Search by Bill Id (with or without letters), Patient Name or Phone Number" for="txtSearch" />
                            <p:panelGrid columns="4">
                                <h:outputLabel value="From Date"/>
                                <p:calendar id="fromDate" value="#{billSearch.fromDate}" navigator="false" pattern="dd MMMM yyyy hh mm a" >
                                    <f:ajax event="dateSelect" execute="tblBills"  render="tblBills toDate fromDate"/>
                                </p:calendar>
                                <h:outputLabel value="To Date"/>
                                <p:calendar id="toDate" value="#{billSearch.toDate}" navigator="false" pattern="dd MMMM yyyy hh mm a" >
                                    <f:ajax event="dateSelect" execute="tblBills"  render="tblBills toDate fromDate"/>
                                </p:calendar>
                                <h:outputLabel value="User Name"/>
                                <p:selectOneMenu id="cmbUser" converter="webUs" value="#{billSearch.user}" >
                                    <f:selectItems  value="#{webUserController.items}" var="w" itemLabel="#{w.code} - #{w.webUserPerson.name}" itemValue="#{w}" />
                                    <f:ajax event="change" execute="cmbUser"  render="tblBills toDate fromDate"/>
                                </p:selectOneMenu>

                                <p:commandButton value="Excel" ajax="false" styleClass="noPrintButton" style="float: right;">
                                    <pe:exporter type="xlsx" target="tblBills" fileName="Bils By Cashier"
                                                 facetBackground="#008000" facetFontSize="15" 
                                                 facetFontColor="#FFFFFF" facetFontStyle="BOLD" cellFontColor="#0000FF" cellFontSize="12"  cellFontStyle="NORMAL"  
                                                 fontName="Courier New"  />
                                </p:commandButton>
                            </p:panelGrid>
                        </h:panelGroup>

                        <br/><br/>
                        <p:dataTable id="tblBills" value="#{billSearch.userBills}" var="bill"  >

                            <f:facet name="header">
                                <h:outputLabel value="Bills By : "/>
                                <h:outputLabel value="#{billSearch.user.webUserPerson}"/>
                                <br/>
                                <h:outputLabel value="From "/>
                                <h:outputLabel value="#{billSearch.fromDate}">
                                    <f:convertDateTime pattern="dd MM yyyy"/>
                                </h:outputLabel>
                                <h:outputLabel value=" - "/>
                                <h:outputLabel value="#{billSearch.toDate}">
                                    <f:convertDateTime pattern="dd MM yyyy"/>
                                </h:outputLabel>                                
                            </f:facet>
                            
                            <p:column headerText="Bill No" >
                                <h:commandLink action="bill_reprint" value="#{bill.insId}">
                                    <h:outputLabel  ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Billed Institution" >
                                <h:commandLink action="bill_reprint" value="#{bill.institution.name}">
                                    <h:outputLabel  ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="To Department" >
                                <h:commandLink action="bill_reprint" value="#{bill.toDepartment.name}">
                                    <h:outputLabel  ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Billing Centre" >
                                <h:commandLink action="bill_reprint" value="#{bill.institution.name}">
                                    <h:outputLabel  ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Bill Date" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.billDate}" >
                                        <f:convertDateTime pattern="dd MM yyyy"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Bill Time" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.billTime}" >
                                        <f:convertDateTime pattern="hh:mm a"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Client" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.patient.person.nameWithTitle}" ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Client Phone No" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.patient.person.phone}" ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Billed By" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.creater.webUserPerson.name}" ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Gross Value" style="text-align: right;">
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.total}" >
                                        <f:convertNumber pattern="#,##0.00"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Discount" style="text-align: right;">
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.discount}" >
                                        <f:convertNumber pattern="#,##0.00"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Net Value" style="text-align: right;" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel value="#{bill.netTotal}" >
                                        <f:convertNumber pattern="#,##0.00"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Cancelled User" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel rendered="#{bill.cancelled}" value="#{bill.cancelledBill.creater.webUserPerson.name}" ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>

                            </p:column>
                            <p:column headerText="Cancelled Time" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel rendered="#{bill.cancelled}" value="#{bill.cancelledBill.createdAt}" >
                                        <f:convertDateTime pattern="hh:mm a"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Cancelled Date" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel rendered="#{bill.cancelled}" value="#{bill.cancelledBill.createdAt}" >
                                        <f:convertDateTime pattern="dd MM yyyy"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Refunded By" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel rendered="#{bill.refunded}" value="#{bill.refundedBill.creater.webUserPerson.name}" ></h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Refunded Time" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel rendered="#{bill.refunded}" value="#{bill.refundedBill.createdAt}" >
                                        <f:convertDateTime pattern="hh:mm a"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                            <p:column headerText="Refunded Date" >
                                <h:commandLink action="bill_reprint" >
                                    <h:outputLabel rendered="#{bill.refunded}" value="#{bill.refundedBill.createdAt}" >
                                        <f:convertDateTime pattern="dd MM yyyy"/>
                                    </h:outputLabel>
                                    <f:setPropertyActionListener value="#{bill}" target="#{billSearch.bill}"/>
                                </h:commandLink>
                            </p:column>

                        </p:dataTable>


                    </p:panel>

                </h:form>
            </ui:define>


        </ui:composition>

    </h:body>
</html>
